package com.cyt.work.association.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.work.association.model.vo.WxAssociationSignVo;
import com.cyt.work.association.model.po.WxAssociationNewStu;
import com.cyt.work.association.model.vo.WxAssociationNewStuVo;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 招新对象关联表-招新对象关联表Service层接口类
 *
 * @author han jun
 * @date 2019-9-3 16:43:32
 */
public interface WxAssociationNewStuService extends BaseService<WxAssociationNewStu> {

    /**
     * 分页查询
     *
     * @param wxAssociationNewStuVo 接受参数对象
     * @param pageNum 分页数
     * @param pageSize 每页显示条数
     * @return ReturnResult
     * @author han jun
     * @date 2019-9-3 16:43:32
     */
    ReturnResult findPage(WxAssociationNewStuVo wxAssociationNewStuVo, int pageNum, int pageSize);

    /**
     * 分页查询
     *
     * @param wxAssociationNewStuVo 接受参数对象
     * @param pageNum 分页数
     * @param pageSize 每页显示条数
     * @return ReturnResult
     * @author han jun
     * @date 2019-9-3 16:43:32
     */
    ReturnResult findVoPage(WxAssociationNewStuVo wxAssociationNewStuVo, int pageNum, int pageSize);

    /**
     * 分页查询(已报名社团人数)
     *
     * @param wxAssociationSignVo 接受参数对象
     * @param pageNum 分页数
     * @param pageSize 每页显示条数
     * @return ReturnResult
     * @author ding xu
     * @date 2019-9-3
     */
    ReturnResult findVoHasSignPage(WxAssociationSignVo wxAssociationSignVo, int pageNum, int pageSize);

    /**
     * list查询
     *
     * @param wxAssociationNewStuVo 接受参数对象
     * @return List<WxAssociationNewStu>
     * @author han jun
     * @date 2019-9-3 16:43:32
     */
    List<WxAssociationNewStu> findList(WxAssociationNewStuVo wxAssociationNewStuVo);

    /**
     * list查询
     *
     * @param wxAssociationNewStuVo 接受参数对象
     * @return List<WxAssociationNewStuVo>
     * @author han jun
     * @date 2019-9-3 16:43:32
     */
    List<WxAssociationNewStuVo> findVoList(WxAssociationNewStuVo wxAssociationNewStuVo);

    /**
     * list查询
     *
     * @param wxAssociationNewStuVo 接受参数对象
     * @return List<WxAssociationNewStuVo>
     * @author han jun
     * @date 2019-9-3 16:43:32
     */
    List<WxAssociationNewStuVo> findVoHasSignList(WxAssociationNewStuVo wxAssociationNewStuVo);

    /**
     * 单个对象查询
     *
     * @param wxAssociationNewStuVo 接受参数对象
     * @return WxAssociationNewStu
     * @author han jun
     * @date 2019-9-3 16:43:32
     */
    WxAssociationNewStu findOne(WxAssociationNewStuVo wxAssociationNewStuVo);

    /**
     * 单个对象查询
     *
     * @param wxAssociationNewStuVo 接受参数对象
     * @return WxAssociationNewStuVo
     * @author han jun
     * @date 2019-9-3 16:43:32
     */
    WxAssociationNewStuVo findVoOne(WxAssociationNewStuVo wxAssociationNewStuVo);

    /**
     * 添加或更新
     *
     * @param wxAssociationNewStuVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author han jun
     * @date 2019-9-3 16:43:32
     */
    ReturnResult addOrUpdate(WxAssociationNewStuVo wxAssociationNewStuVo, SysUser sysUser);

    /**
     * 根据条件逻辑删除
     *
     * @param wxAssociationNewStuVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author han jun
     * @date 2019-9-3 16:43:32
     */
    ReturnResult remove(WxAssociationNewStuVo wxAssociationNewStuVo, SysUser sysUser);

    /**
     * 根据条件物理删除
     *
     * @param wxAssociationNewStuVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author han jun
     * @date 2019-9-3 16:43:32
     */
    ReturnResult delete(WxAssociationNewStuVo wxAssociationNewStuVo, SysUser sysUser);

    /**
     * 导入
     * @param file
     * @param sysUser
     * @author hanjun
     * @date 2019/9/3 13:47
     */
    ReturnResult importExcel(MultipartFile file, SysUser sysUser,String associationNewId,String applyId);
}